package com.semlab.client.req;

import com.google.web.bindery.requestfactory.shared.Request;
import com.google.web.bindery.requestfactory.shared.RequestContext;
import com.google.web.bindery.requestfactory.shared.Service;
import com.semlab.client.proxy.MoviePageProxy;
import com.semlab.client.proxy.MovieProxy;
import com.semlab.client.proxy.ClientProxy;
import com.semlab.server.CustomServiceLocator;
import com.semlab.server.services.DataService;

@Service(value = DataService.class, locator = CustomServiceLocator.class)
public interface DataRequest extends RequestContext {

    Request<Boolean> startImport(ClientProxy client, int numOfFriends, int numOfMovies);

    Request<Boolean> startEnrichment(ClientProxy client);

    Request<MoviePageProxy> getMovies(ClientProxy client, int offset, int num);

    Request<MovieProxy> getDetailsForAMovie(ClientProxy clientProxy, MovieProxy proxy);

    Request<MovieProxy> enrichMovieData(MovieProxy movie);
}
